cmake_minimum_required(VERSION 3.28)
project(StateMachine)

if (MSVC)
    add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
endif ()

set(CMAKE_CXX_STANDARD 17)
include_directories(${CMAKE_CURRENT_LIST_DIR}/State)
include_directories(${CMAKE_CURRENT_LIST_DIR}/Mode)

add_executable(StateMachine
        main.cpp
        State/Event.cpp
        State/Event.h
        State/BaseState.h
        State/StateMachine.cpp
        State/StateMachine.h
        State/StateManager.cpp
        State/StateManager.h
        Mode/NorthMode.cpp
        Mode/NorthMode.h
        Mode/SouthMode.cpp
        Mode/SouthMode.h
        Mode/EastMode.cpp
        Mode/EastMode.h
        Mode/WestMode.cpp
        Mode/WestMode.h
        Mode/ErrorMode.cpp
        Mode/ErrorMode.h
)
